Cloud computing typically involves using remote computing resources on a pay-per-use basis, where the remote computing resources may be used alone or in conjunction with internal computing resources. For example, processing resources and storage resources of a cloud service provider, such as Amazon Web Services, Microsoft Azure, or Rackspace Cloud Servers, can be requested and used on-demand in a scalable fashion. Cloud computing can be used to provide applications and information to end user devices, such as laptops, personal computers, thin clients, mobile devices, etc. Cloud computing can be used for applications with varying or unpredictable demand like year-end financials or tax-return preparation. Additionally, computationally-intensive processing, such as Monte Carlo simulations or protein folding, can be performed using cloud computing resources.
Given the variation in applications, variations in demand, variations in hosting platforms, and variations in end user devices, it can be difficult for a service provider to set up and implement cloud computing services. A cloud service provider should have skills and resources to provision (e.g., to define, make ready for use, setup, etc.), use and manage computing resources and applications. However, in many instances, a service provider planning to set up cloud services for the first time may lack familiarity with the provisioning and management of resources for cloud services. Also, the service provider may have a limited budget for the provisioning. As a result, it can be difficult, time consuming and cost prohibitive for a service provider to set up and provide cloud services.